Skip to content

Project

Interactive MDX-Based Blog

Video Summary

Welcome to the final project!

Before we get into the details of this project, I want to congratulate you on making it here, to the final project! This course has been a ton of work, so you should give yourself a pat on the back for making it this far!

In this project, we're going to build a blog. Now, that might not sound like a terribly ambitious final project, but let me assure you, this won't be a typical everyday blog. We get into some really cool stuff in this one.

Here's what we'll be building:

Screenshot of a developer blog

At first glance, it looks like a pretty standard blog, but if we scroll down a bit, we come across something pretty unusual:

Right in the middle of the content, we have an interactive widget.

This particular blog post is all about the Modulo operator, %. To understand this operator, it really helps to have a specific mental model for division.

It's really hard to convey mental models for stuff like this with words alone. The best way to teach visual concepts like this, in my opinion, is to give users the opportunity to experiment for themselves, to build that mental model in a hands-on way.

This is the thing that really makes this blog special. We have the ability to create and embed custom components, to create an interactive learning experience.

More broadly, this blog takes advantage of all the bleeding-edge stuff we've been talking about. We'll build it using the Next 13 App Router with React Server Components. The end result achieves a perfect score in Lighthouse:

Lighthouse results showing perfect 100 scores for all 4 categories (performance, accessibility, best practices, and SEO)

The blog is architected in such a way that performance should stay strong even as we add more and more content.

Also, it deploys to Vercel in ~30 seconds, and this also shouldn't scale up too much even as the blog grows.

Finally, it also features a flawless, flicker-free “dark mode” implementation.

We cover a lot of ground in this project. It's not just about the “full-stack” stuff from Module 6; this project will revisit things we saw much earlier in the course!

I truly believe that this project will be valuable for you even if you have no interest in starting a developer blog… But if you do want to start your own blog, I have some good news for you: You'll be able to use this project as the foundation for your own personal blog! There are some conditions that I'll link to below, but you can absolutely use this as the start to your own real-world developer blog. 😄

In this final project, we're going to build an interactive MDX-based blog.

Screenshot of a developer blog

As I mention in the video above, this is not a typical static blog. It uses MDX to embed dynamic, custom components right inside the content, just like I do on joshwcomeau.com.

I'm so excited to show you all of the bells and whistles we use in this one. This is a great opportunity to practice all of the bleeding-edge stuff we talked about in Module 6, and it'll be super valuable regardless of whether you have any interest in starting a new blog or not. 😄